Various types of user interfaces have been developed to facilitate access to data arranged in one or more databases. The interfaces typically present data according to how the data is arranged in the database.
One commonly utilized database structure is a hierarchical database model. A hierarchical database corresponds to a type of database management system that links records together in a tree structure. For example, the hierarchical model includes a root node and children nodes that depend acyclically from the root node. In a traditional hierarchical model, each node can have at most one parent node, although any number of children.
Another database structure is a network database model, which is similar to the hierarchical model. But instead of using a single-parent tree hierarchy, the network model employs set theory to provide a tree-like hierarchy with the exception that children nodes can have more than one parent. This enables the network model to support various interrelationships that are usually absent from the pure hierarchical model.
One particular use of a network model relates to a metadirectory service. For example, a metadirectory corresponds to a centralized service that collects information from different data sources, such as different directories throughout an organization. The metadirectory combines all or a portion of the collected information into an integrated, unified view via an associated user interface. In a business organization, for example, a metadirectory can combine disparate information into a single, logical directory, such as based on identity information in e-mail applications, human resource systems, network operating system directories, and other corporate systems. The metadirectory thus facilitates presentation of information about an object, such as a person or network resource, that is contained throughout the organization.
Typically, user interfaces to the foregoing and other types of database systems have several shortcomings. For example, conventional user interfaces are specialized for a particular application and, as such, are generally inflexible to adaptations. Additionally, due to customization for a particular purpose, users often are confronted with a diverse set of front-ends that each requires training.
While some user interfaces attempt to provide a generalized front-end, these approaches tend to require users to construct complex queries using arcane interfaces that in themselves may require significant training. In addition, user interfaces for databases tend to exhibit delays from when a query is submitted to when results are presented to the user. For example, most database front-ends require user to construct a query, submit the query to the database engine, then wait for the presentation of the results. Frequently, due to an imprecise query on the part of the user, imperfect knowledge about what question to ask, or the improper use of the predefined query language, a user will be presented with either too many or too few results. This discourages users from attempting many different iterations on a query. Because conventional approaches make effective querying a slow process, it is often difficult for the user to understand the relationship between selected criteria and resulting views of the database.
Most database front-ends present a fixed view of the set of query criteria. Users can only choose from one level of granularity for particular criteria. This makes it very difficult (or even impossible) for a user to easily narrow or broaden the applicability of a particular criteria, as any changes to a current query usually require submission and processing of a new query.
Most database front-ends also present a fixed view of their inherent information taxonomy. This taxonomy is usually based on how the data is stored in the database. Users, who are not familiar with the search terms that are presented, however, are often frustrated when they cannot find the search term they need.
Current database systems are generally not used for accessing large command sets. Their user interfaces have not been tuned to present commands (actions) and their relationships to actionable items.